Various mechanisms exist to allow computers and executing software applications to interact. For example, remote procedure call (“RPC”) protocols have long existed that allow a program on one computer to cause a program on another computer to be executed. In a similar manner, various object-oriented architectures such as CORBA (“Common Object Request Broker Architecture”) and DCOM (“Distributed Component Object Model”) provide remote execution capabilities. In addition, various middleware programs have been implemented to connect separate applications (often of distinct types and from unrelated sources) to allow communication. For example, various EDI (“Electronic Data Interchange”) networks exist that provide standard mechanisms to allow a computer system of one user of the network to send data to a computer system of another user of the network.
The widespread popularity of the World Wide Web (“Web”) has provided additional opportunities for computers to inter-communicate. For example, much current Web use involves users interactively requesting Web pages from Web servers (e.g., via Web browser applications executing on user computers) and receiving the requested information in response. In addition, there is also growing use of the Web to support the programmatic interaction of remote applications to exchange information via defined APIs (“application program interfaces”), such as via Web services. Web services allow heterogeneous applications and computers to interact, and can be defined and implemented using a variety of underlying protocols and techniques. For example, some Web service implementations return data in XML (“eXtensible Markup Language”) format using HTTP (“HyperText Transport Protocol”) in response to a Web service invocation request specified as a URI (“Uniform Resource Identifier”), such as a URL (“Uniform Resource Locator”) that includes a specified operation and one or more query parameters. In other implementations, additional underlying protocols are used for various purposes, such as SOAP (“Simple Object Access Protocol”) for standard message exchange, WSDL (“Web Services Description Language”) for description of service invocations, and UDDI (“Universal Description, Discovery, and Integration service”) for discovery of available services.
In addition to interactions between multiple software applications, various mechanisms also exist to allow a particular software program to incorporate or otherwise use other portions of software code that are not stand-alone programs. For example, some implementations of software programming languages allow a software application to link to or otherwise incorporate one or more software libraries that each typically includes multiple available software functions and/or class definitions, usually of a common type or a related purpose. In additions, some implementations of software programming languages allow the definition and use of other types of reusable software packages that can be incorporated in or otherwise used by various software applications, such as JavaBeans within the Java programming language, and OLE (Object Linking and Embedding) objects and ActiveX controls.